package com.miwzn.base;

import com.miwzn.comm.utils.Page;

import java.util.List;

/**
 * @Auther: wzn
 * @Date: 2018/6/1 10:27
 * @Description:
 */
public interface BaseService<T, D extends BaseEntity, Q extends QueryEntity> extends Mapper<T, D, Q> {

    public D wrapD(T t);

    public T wrapT(D d);

    public List<D> wrapDs(List<T> ts);

    /**
     * 返回DTO
     *
     * @param entity
     *
     * @return DTO
     */
    public D insertD(T entity);

    /**
     * 返回DTO
     *
     * @param entity
     *
     * @return DTO
     */
    public D insertSelectiveD(T entity);

    /**
     * 分页查询
     *
     * @param entity
     *
     * @return Page
     */
    public Page selectTPage(T entity);


    /**
     * 分页查询
     *
     * @param entity
     *
     * @return Page
     */
    public Page selectDPage(T entity);

    /**
     * 分页查询
     *
     * @param entity
     *
     * @return Page
     */
    public Page selectTPage(Q entity);

    /**
     * 分页查询
     *
     * @param entity
     *
     * @return Page
     */
    public Page selectDPage(Q entity);

    /**
     * @param entity
     *
     * @return
     */
    public List<D> selectDList(Q entity);

}
